package org.csu.backofficemanagersys.base64;

import org.springframework.stereotype.Component;

@Component
public class Base64 {
    private static final String SALT = "CentralSouthUniversity";
    private static final int REPEAT = 3;
    public static String encode(String str) {
        // 加盐处理
        String temp = str + "{" + SALT + "}";
        byte data[] = temp.getBytes();
        for (int i = 0; i < REPEAT; i++) {
            // 重复加密
            data = java.util.Base64.getEncoder().encode(data);
        }
        return new String(data);
    }

    /**
     * 解密处理
     * @param str 需要解密的内容
     * @return 解密后的原始数据
     */
    public static String decode(String str) {
        // 获取加密的内容
        byte data[] = str.getBytes();
        for (int i = 0; i < REPEAT; i++) {
            // 多次解密
            data = java.util.Base64.getDecoder().decode(data);
        }
        // 删除盐值格式
        return new String(data).replaceAll("\\{\\w+\\}", "");
    }
}
